# Copyright (c) Huawei Technologies Co., Ltd. 2020. All rights reserved.

# CMake lowest version requirement
cmake_minimum_required(VERSION 3.5.1)

# project information
project(opencann_test)

# Compile options
add_compile_options(-std=c++11)

set(CMAKE_RUNTIME_OUTPUT_DIRECTORY "../../../../../bin")
set(INC_PATH $ENV{DDK_PATH})
set(UTILS_PATH "../../common/src")

if (NOT DEFINED ENV{DDK_PATH})
    set(INC_PATH "/usr/local/Ascend")
    message(STATUS "set default INC_PATH: ${INC_PATH}")
else ()
    message(STATUS "env INC_PATH: ${INC_PATH}")
endif()

set(LIB_PATH $ENV{NPU_HOST_LIB})

# Dynamic libraries in the stub directory can only be used for compilation
if (NOT DEFINED ENV{NPU_HOST_LIB})
    set(LIB_PATH "/usr/local/Ascend/acllib/lib64/stub/")
    message(STATUS "set default LIB_PATH: ${LIB_PATH}")
else ()
    message(STATUS "env LIB_PATH: ${LIB_PATH}")
endif()

# Header path
include_directories(
    ${INC_PATH}/include/
    ../../common/inc
)

# add host lib path
link_directories(
    ${LIB_PATH}
)


#aicl_mem
add_executable(aicl_mem_001
        ${UTILS_PATH}/aicl_adaptor_cann.cpp
        aicl_mem_001.cpp)

target_link_libraries(aicl_mem_001
        ascendcl
        acl_op_compiler
        stdc++)

install(TARGETS aicl_mem_001 DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

add_executable(aicl_mem_002
        ${UTILS_PATH}/aicl_adaptor_cann.cpp
        aicl_mem_002.cpp)

target_link_libraries(aicl_mem_002
        ascendcl
        acl_op_compiler
        stdc++)

install(TARGETS aicl_mem_002 DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

add_executable(aicl_mem_003
        ${UTILS_PATH}/aicl_adaptor_cann.cpp
        aicl_mem_003.cpp)

target_link_libraries(aicl_mem_003
        ascendcl
        acl_op_compiler
        stdc++)

install(TARGETS aicl_mem_003 DESTINATION ${CMAKE_RUNTIME_OUTPUT_DIRECTORY})

